home *** CD-ROM | disk | FTP | other *** search
/ Tech Arsenal 1 / Tech Arsenal (Arsenal Computer).ISO / tek-04 / gs24src.zip / GS.MAK < prev    next >
Text File  |  1992-03-24  |  21KB  |  577 lines

  1. #    Copyright (C) 1989, 1992 Aladdin Enterprises.  All rights reserved.
  2. #    Distributed by Free Software Foundation, Inc.
  3. #
  4. # This file is part of Ghostscript.
  5. #
  6. # Ghostscript is distributed in the hope that it will be useful, but
  7. # WITHOUT ANY WARRANTY.  No author or distributor accepts responsibility
  8. # to anyone for the consequences of using it or for whether it serves any
  9. # particular purpose or works at all, unless he says so in writing.  Refer
  10. # to the Ghostscript General Public License for full details.
  11. #
  12. # Everyone is granted permission to copy, modify and redistribute
  13. # Ghostscript, but only under the conditions described in the Ghostscript
  14. # General Public License.  A copy of this license is supposed to have been
  15. # given to you along with Ghostscript so you can know your rights and
  16. # responsibilities.  It should be in a file named COPYING.  Among other
  17. # things, the copyright notice and this notice must be preserved on all
  18. # copies.
  19.  
  20. # Generic makefile for Ghostscript.
  21. # The platform-specific makefiles `include' this file.
  22. # They define the following symbols:
  23. #    GS_INIT - the name of the initialization file for Ghostscript,
  24. #        normally gs_init.ps.
  25. #    GS_LIB_DEFAULT - the default directory/ies for searching for the
  26. #        initialization and font files at run time.
  27. #    DEVICE_DEVS - the devices to include in the executable.
  28. #        See devs.mak for details.
  29. #    FEATURE_DEVS - the optional features to include in the
  30. #        executable.  Current features are:
  31. #            dps - support for Display PostScript extensions.
  32. #            *** PARTIALLY IMPLEMENTED, SEE language.doc. ***
  33. #            level2 - support for PostScript Level 2 extensions.
  34. #            *** PARTIALLY IMPLEMENTED, SEE language.doc. ***
  35. #            compfont - support for composite (type 0) fonts.
  36. #            *** NOT IMPLEMENTED YET. ***
  37. #            filter - support for Level 2 filters (other than eexec,
  38. #            ASCIIHexEncode/Decode, and PFBDecode, which are
  39. #            always included).
  40. #            ccfonts - precompile fonts into C, and link them
  41. #            with the executable.  In the standard makefiles,
  42. #            this is only implemented for a very few fonts:
  43. #            see fonts.doc for details.
  44. # It is very unlikely that anyone would want to edit the remaining
  45. #   symbols, but we describe them here for completeness:
  46. #    PLATFORM - a "device" name for the platform, so that platforms can
  47. #        add various kinds of resources like devices and features.
  48. #    QQ - a " preceded by whatever escape characters are needed to
  49. #        persuade the shell to pass a " to a program (" on MS-DOS,
  50. #        \" on Unix).
  51. #    XE - the extension for executable files (e.g., null or .exe).
  52. #    OBJ - the extension for relocatable object files (e.g., o or obj).
  53. #    CCC - the C invocation for normal compilation.
  54. #    CC0 - a C invocation with the fewest possible flags.  Needed because
  55. #        MS-DOS limits the length of command lines to 128 characters.
  56. #    CCINT - the C invocation for compiling the main interpreter module,
  57. #        normally the same as CCC: this is needed because the
  58. #        Borland compiler generates *worse* code for this module
  59. #        (but only this module) when optimization (-O) is turned on.
  60. #    AK - if source files must be converted from ANSI to K&R syntax,
  61. #        this is ansi2knr$(XE); if not, it is null.
  62. #    UNIQ - null on systems that provide the uniq utility,
  63. #        uniq$(XE) on systems where we have to provide our own.
  64. #    SHP - the prefix for invoking a shell script in the current directory
  65. #        (null for MS-DOS, $(SH) ./ for Unix).
  66. #    EXPP, EXP - the prefix for invoking an executable program in the
  67. #        current directory (null for MS-DOS, ./ for Unix).
  68. #    SH - the shell for scripts (null on MS-DOS, sh on Unix).
  69. # The platform-specific makefiles must also include rules for creating
  70. #   ansi2knr$(XE) and genarch$(XE) from the corresponding .c files,
  71. #   and for making arch.h by executing genarch$(XE).  (This
  72. #   shouldn't really be necessary, but Turbo C and Unix C treat the -o
  73. #   switch slightly differently (Turbo C requires no following space,
  74. #   Unix C requires a following space), and I haven't found a way to capture
  75. #   the difference in a macro; also, Unix requires ./ because . may not be
  76. #   in the search path, whereas MS-DOS always looks in the current
  77. #   directory first.)
  78.  
  79. all default: gs$(XE)
  80.  
  81. test: gt$(XE)
  82.  
  83. mostlyclean realclean distclean clean:
  84.     rm -f *.$(OBJ) *.a core gmon.out
  85.     rm -f *.dev gconfig.h obj*.tr lib*.tr
  86.     rm -f t _temp_* _temp_*.* *.map *.sym
  87.     rm -f ansi2knr$(XE) genarch$(XE) uniq$(XE) arch.h gs$(XE)
  88.  
  89. # Auxiliary programs
  90.  
  91. # genarch may cause a (deliberate) addressing fault,
  92. # so we invoke it with a preceding -.
  93.  
  94. arch.h: genarch$(XE)
  95.     - $(EXPP) $(EXP)genarch arch.h
  96.  
  97. # -------------------------------- Library -------------------------------- #
  98.  
  99. # Define the inter-dependencies of the .h files.
  100. # Since not all versions of `make' defer expansion of macros,
  101. # we must list these in bottom-to-top order.
  102.  
  103. # Generic files
  104.  
  105. arch_h=arch.h
  106. std_h=std.h $(arch_h)
  107. gs_h=gs.h $(std_h)
  108. gx_h=gx.h $(gs_h)
  109.  
  110. # C library interfaces
  111.  
  112. # Because of variations in the "standard" header files between systems,
  113. # we define local include files named *_.h to substitute for <*.h>.
  114.  
  115. vmsmath_h=vmsmath.h
  116.  
  117. dos__h=dos_.h
  118. malloc__h=malloc_.h
  119. math__h=math_.h $(vmsmath_h)
  120. memory__h=memory_.h
  121. stat__h=stat_.h
  122. string__h=string_.h
  123. time__h=time_.h
  124.  
  125. # Miscellaneous
  126.  
  127. gserrors_h=gserrors.h
  128.  
  129. GX=$(AK) $(gx_h)
  130. GXERR=$(GX) $(gserrors_h)
  131.  
  132. ###### Low-level facilities and utilities
  133.  
  134. ### Include files
  135.  
  136. gschar_h=gschar.h
  137. gscolor_h=gscolor.h
  138. gscoord_h=gscoord.h
  139. gsfont_h=gsfont.h
  140. gsmatrix_h=gsmatrix.h
  141. gspaint_h=gspaint.h
  142. gspath_h=gspath.h
  143. gsprops_h=gsprops.h
  144. gsstate_h=gsstate.h $(gscolor_h)
  145. gstype1_h=gstype1.h
  146. gsutil_h=gsutil.h
  147.  
  148. gxarith_h=gxarith.h
  149. gxbitmap_h=gxbitmap.h
  150. gxcache_h=gxcache.h
  151. gxchar_h=gxchar.h $(gschar_h)
  152. gxclist_h=gxclist.h
  153. gxcpath_h=gxcpath.h
  154. gxdevice_h=gxdevice.h $(gsmatrix_h) $(gxbitmap_h)
  155. gxdevmem_h=gxdevmem.h
  156. gxfdir_h=gxfdir.h
  157. gxfixed_h=gxfixed.h
  158. gxfont_h=gxfont.h $(gsfont_h)
  159. gximage_h=gximage.h
  160. gxmatrix_h=gxmatrix.h $(gsmatrix_h)
  161. gxop1_h=gxop1.h
  162. gxpath_h=gxpath.h
  163. gxtype1_h=gxtype1.h $(gstype1_h)
  164.  
  165. gzcolor_h=gzcolor.h $(gscolor_h)
  166. gzdevice_h=gzdevice.h $(gxdevice_h)
  167. gzht_h=gzht.h
  168. gzline_h=gzline.h
  169. gzpath_h=gzpath.h $(gxpath_h)
  170. gzstate_h=gzstate.h $(gsstate_h)
  171.  
  172. ### Executable code
  173.  
  174. gsutil.$(OBJ): gsutil.c \
  175.   $(std_h) $(gsprops_h) $(gsutil_h)
  176.  
  177. gxcache.$(OBJ): gxcache.c $(GXERR) \
  178.   $(gxfixed_h) $(gxmatrix_h) $(gspaint_h) $(gzdevice_h) $(gzcolor_h) \
  179.   $(gxcpath_h) $(gxdevmem_h) $(gxfont_h) $(gxfdir_h) $(gxchar_h) \
  180.   $(gxcache_h) $(gzstate_h) $(gzpath_h)
  181.  
  182. gxclist.$(OBJ): gxclist.c $(GXERR) \
  183.   $(gsmatrix_h) $(gxbitmap_h) $(gxclist_h) $(gxdevice_h) $(gxdevmem_h)
  184.  
  185. gxcolor.$(OBJ): gxcolor.c $(GXERR) \
  186.   $(gxfixed_h) $(gxmatrix_h) $(gxdevice_h) $(gzcolor_h) $(gzht_h) $(gzstate_h)
  187.  
  188. gxcpath.$(OBJ): gxcpath.c $(GXERR) \
  189.   $(gxdevice_h) $(gxfixed_h) $(gzcolor_h) $(gzpath_h) $(gxcpath_h)
  190.  
  191. gxdither.$(OBJ): gxdither.c $(GX) \
  192.   $(gxfixed_h) $(gxmatrix_h) $(gzstate_h) $(gzdevice_h) $(gzcolor_h) $(gzht_h)
  193.  
  194. gxdraw.$(OBJ): gxdraw.c $(GX) \
  195.   $(gxfixed_h) $(gxmatrix_h) $(gxbitmap_h) $(gzcolor_h) $(gzdevice_h) $(gzstate_h)
  196.  
  197. gxfill.$(OBJ): gxfill.c $(GXERR) \
  198.   $(gxfixed_h) $(gxmatrix_h) $(gxdevice_h) $(gzcolor_h) $(gzpath_h) $(gzstate_h) $(gxcpath_h)
  199.  
  200. gxht.$(OBJ): gxht.c $(GXERR) \
  201.   $(gxfixed_h) $(gxmatrix_h) $(gxbitmap_h) $(gzstate_h) $(gzcolor_h) $(gzdevice_h) $(gzht_h)
  202.  
  203. gxpath.$(OBJ): gxpath.c $(GXERR) \
  204.   $(gxfixed_h) $(gzpath_h)
  205.  
  206. gxpath2.$(OBJ): gxpath2.c $(GXERR) \
  207.   $(gxfixed_h) $(gxarith_h) $(gzpath_h)
  208.  
  209. gxstroke.$(OBJ): gxstroke.c $(GXERR) \
  210.   $(gxfixed_h) $(gxarith_h) $(gxmatrix_h) $(gzstate_h) $(gzcolor_h) $(gzdevice_h) $(gzline_h) $(gzpath_h)
  211.  
  212. ###### High-level facilities
  213.  
  214. gschar.$(OBJ): gschar.c $(GXERR) \
  215.   $(gxfixed_h) $(gxarith_h) $(gxmatrix_h) $(gzdevice_h) $(gxdevmem_h) $(gxfont_h) $(gxchar_h) $(gxcache_h) $(gstype1_h) $(gspath_h) $(gzpath_h) $(gzcolor_h) $(gzstate_h)
  216.  
  217. gscolor.$(OBJ): gscolor.c $(GXERR) \
  218.   $(gxfixed_h) $(gxmatrix_h) $(gxdevice_h) $(gzstate_h) $(gzcolor_h) $(gzht_h)
  219.  
  220. gscoord.$(OBJ): gscoord.c $(GXERR) \
  221.   $(gxarith_h) $(gxfixed_h) $(gxmatrix_h) $(gzdevice_h) $(gzstate_h) $(gscoord_h)
  222.  
  223. gsdevice.$(OBJ): gsdevice.c $(GXERR) \
  224.   $(gsarith_h) $(gsprops_h) $(gsutil_h) $(gxfixed_h) $(gxmatrix_h) $(gxbitmap_h) $(gxdevmem_h) $(gzstate_h) $(gzdevice_h)
  225.  
  226. gsfile.$(OBJ): gsfile.c $(GXERR) \
  227.   $(gsmatrix_h) $(gxdevice_h) $(gxdevmem_h)
  228.  
  229. gsfont.$(OBJ): gsfont.c $(GXERR) \
  230.   $(gxdevice_h) $(gxfixed_h) $(gxmatrix_h) $(gxfont_h) $(gxfdir_h) $(gzstate_h)
  231.  
  232. gsimage.$(OBJ): gsimage.c $(GXERR) \
  233.   $(gxfixed_h) $(gxarith_h) $(gxmatrix_h) $(gspaint_h) $(gzcolor_h) $(gzdevice_h) $(gzpath_h) $(gzstate_h) $(gxcpath_h) $(gxdevmem_h) $(gximage_h)
  234.  
  235. gsim2out.$(OBJ): gsim2out.c $(GXERR) \
  236.   $(gsstate_h) $(gsmatrix_h) $(gscoord_h) $(gxfixed_h) $(gxtype1_h)
  237.  
  238. gsline.$(OBJ): gsline.c $(GXERR) \
  239.   $(gxfixed_h) $(gxmatrix_h) $(gzstate_h) $(gzline_h)
  240.  
  241. gsmatrix.$(OBJ): gsmatrix.c $(GXERR) \
  242.   $(gxfixed_h) $(gxarith_h) $(gxmatrix_h)
  243.  
  244. gsmisc.$(OBJ): gsmisc.c $(GX) $(MAKEFILE)
  245.     $(CCC) -DUSE_ASM=0$(USE_ASM) gsmisc.c
  246.  
  247. gspaint.$(OBJ): gspaint.c $(GXERR) \
  248.   $(gxfixed_h) $(gxmatrix_h) $(gspaint_h) $(gzpath_h) $(gzstate_h) $(gzdevice_h) $(gxcpath_h) $(gxdevmem_h) $(gximage_h)
  249.  
  250. gspath.$(OBJ): gspath.c $(GXERR) \
  251.   $(gxfixed_h) $(gxmatrix_h) $(gxpath_h) $(gzstate_h)
  252.  
  253. gspath2.$(OBJ): gspath2.c $(GXERR) \
  254.   $(gspath_h) $(gxfixed_h) $(gxmatrix_h) $(gzstate_h) $(gzpath_h) $(gzdevice_h)
  255.  
  256. gsstate.$(OBJ): gsstate.c $(GXERR) \
  257.   $(gxfixed_h) $(gxmatrix_h) $(gzstate_h) $(gzcolor_h) $(gzdevice_h) $(gzht_h) $(gzline_h) $(gzpath_h)
  258.  
  259. gstdev.$(OBJ): gstdev.c $(GX) \
  260.   $(gxbitmap_h) $(gxdevice_h) $(gxfixed_h) $(gxmatrix_h)
  261.  
  262. gstype1.$(OBJ): gstype1.c $(GXERR) \
  263.   $(gxarith_h) $(gxfixed_h) $(gxmatrix_h) $(gxchar_h) $(gxdevmem_h) $(gxop1_h) $(gxtype1_h) \
  264.   $(gzstate_h) $(gzdevice_h) $(gzpath_h)
  265.  
  266. ###### The internal devices
  267.  
  268. gdevmem_h=gdevmem.h
  269.  
  270. gdevmem1.$(OBJ): gdevmem1.c $(AK) \
  271.   $(gs_h) $(gxdevice_h) $(gxdevmem_h) $(gdevmem_h)
  272.  
  273. gdevmem2.$(OBJ): gdevmem2.c $(AK) \
  274.   $(gs_h) $(gxdevice_h) $(gxdevmem_h) $(gdevmem_h)
  275.  
  276. ###### Files dependent on the installed devices, features, and platform.
  277. ###### Generating gconfig.h also generates obj*.tr and lib.tr.
  278.  
  279. gconfig.h gconfig.ps obj.tr lib.tr: devs.mak $(MAKEFILE) $(UNIQ) $(DEVICE_DEVS) $(FEATURE_DEVS) $(PLATFORM).dev
  280.     $(SHP)gsconfig $(DEVICE_DEVS) +
  281.     $(SHP)gsconfig + $(FEATURE_DEVS) $(PLATFORM).dev
  282.  
  283. gconfig.$(OBJ): gconfig.c $(AK) gconfig.h $(MAKEFILE)
  284.     $(CC0) -DGS_LIB_DEFAULT=$(QQ)$(GS_LIB_DEFAULT)$(QQ) -DGS_INIT=$(QQ)$(GS_INIT)$(QQ) gconfig.c
  285.  
  286. ###### On Unix, we pre-link all of the library except the back end.
  287. ###### On MS-DOS, we have to do the whole thing at once.
  288.  
  289. LIB=gschar.$(OBJ) gscolor.$(OBJ) gscoord.$(OBJ) \
  290.  gsdevice.$(OBJ) gsfile.$(OBJ) gsfont.$(OBJ) \
  291.  gsimage.$(OBJ) gsim2out.$(OBJ) \
  292.  gsline.$(OBJ) gsmatrix.$(OBJ) gsmisc.$(OBJ) \
  293.  gspaint.$(OBJ) gspath.$(OBJ) gspath2.$(OBJ) \
  294.  gsstate.$(OBJ) gstdev.$(OBJ) gstype1.$(OBJ) gsutil.$(OBJ) \
  295.  gxcache.$(OBJ) gxclist.$(OBJ) gxcolor.$(OBJ) gxcpath.$(OBJ) \
  296.  gxdither.$(OBJ) gxdraw.$(OBJ) gxfill.$(OBJ) \
  297.  gxht.$(OBJ) gxpath.$(OBJ) gxpath2.$(OBJ) gxstroke.$(OBJ) \
  298.  gdevmem1.$(OBJ) gdevmem2.$(OBJ) gconfig.$(OBJ)
  299.  
  300. # ------------------------------ Interpreter ------------------------------ #
  301.  
  302. ###### Include files
  303.  
  304. alloc_h=alloc.h
  305. astate_h=astate.h
  306. ccfont_h=ccfont.h
  307. dict_h=dict.h
  308. errors_h=errors.h
  309. estack_h=estack.h
  310. file_h=file.h
  311. font_h=font.h
  312. ghost_h=ghost.h $(gx_h)
  313. gp_h=gp.h
  314. iutil_h=iutil.h
  315. name_h=name.h
  316. opdef_h=opdef.h
  317. ostack_h=ostack.h
  318. overlay_h=overlay.h
  319. packed_h=packed.h
  320. save_h=save.h
  321. scanchar_h=scanchar.h
  322. state_h=state.h
  323. store_h=store.h
  324. stream_h=stream.h
  325. # Nested include files
  326. oper_h=oper.h $(gsutil_h) $(iutil_h) $(opdef_h) $(ostack_h)
  327. # Include files for optional features
  328. bnum_h=bnum.h
  329. bseq_h=bseq.h
  330. btoken_h=btoken.h
  331.  
  332. comp1_h=comp1.h $(ghost_h) $(oper_h) $(gserrors_h) $(gxfixed_h) $(gxop1_h)
  333.  
  334. gdevpcl_h=gdevpcl.h
  335. gdevprn_h=gdevprn.h $(memory__h) $(string__h) $(gs_h) \
  336.   $(gsmatrix_h) $(gxdevice_h) $(gxdevmem_h) $(gxclist_h)
  337. gdevx_h=gdevx.h
  338.  
  339. ###### Utilities
  340.  
  341. GH=$(AK) $(ghost_h)
  342.  
  343. ialloc.$(OBJ): ialloc.c $(AK) $(gs_h) $(alloc_h) $(astate_h)
  344.  
  345. iccfont.$(OBJ): iccfont.c $(GH) \
  346.  $(ghost_h) $(alloc_h) $(ccfont_h) $(dict_h) $(errors_h) $(name_h) $(save_h) $(store_h)
  347.  
  348. idebug.$(OBJ): idebug.c $(GH) \
  349.  $(iutil_h) $(dict_h) $(name_h) $(ostack_h) $(opdef_h) $(packed_h) $(store_h)
  350.  
  351. idict.$(OBJ): idict.c $(GH) $(alloc_h) $(errors_h) $(name_h) $(packed_h) $(save_h) $(store_h) $(iutil_h) $(dict_h)
  352.  
  353. iinit.$(OBJ): iinit.c $(GH) gconfig.h $(alloc_h) $(dict_h) $(errors_h) $(name_h) $(oper_h) $(store_h)
  354.  
  355. iname.$(OBJ): iname.c $(GH) $(alloc_h) $(errors_h) $(name_h) $(store_h)
  356.  
  357. isave.$(OBJ): isave.c $(GH) $(alloc_h) $(astate_h) $(name_h) $(packed_h) $(save_h) $(store_h)
  358.  
  359. iscan.$(OBJ): iscan.c $(GH) $(alloc_h) $(dict_h) $(errors_h) $(iutil_h) \
  360.  $(name_h) $(ostack_h) $(packed_h) $(store_h) $(stream_h) $(scanchar_h)
  361.  
  362. iutil.$(OBJ): iutil.c $(GH) \
  363.  $(errors_h) $(alloc_h) $(dict_h) $(iutil_h) $(name_h) $(ostack_h) $(opdef_h) $(store_h) \
  364.  $(gsmatrix_h) $(gxdevice_h) $(gzcolor_h)
  365.  
  366. sfilter.$(OBJ): sfilter.c $(AK) $(std_h) $(scanchar_h) $(stream_h) \
  367.  $(gxfixed_h) $(gstype1_h)
  368.  
  369. stream.$(OBJ): stream.c $(AK) $(std_h) $(stream_h) $(scanchar_h)
  370.  
  371. ###### Operators
  372.  
  373. OP=$(GH) $(errors_h) $(oper_h)
  374.  
  375. ### Non-graphics operators
  376.  
  377. zarith.$(OBJ): zarith.c $(OP) $(store_h)
  378.  
  379. zarray.$(OBJ): zarray.c $(OP) $(alloc_h) $(packed_h) $(store_h)
  380.  
  381. zcontrol.$(OBJ): zcontrol.c $(OP) $(estack_h) $(iutil_h) $(store_h)
  382.  
  383. zdict.$(OBJ): zdict.c $(OP) $(dict_h) $(store_h)
  384.  
  385. zfile.$(OBJ): zfile.c $(OP) $(gp_h) \
  386.   $(alloc_h) $(estack_h) $(file_h) $(iutil_h) $(save_h) $(stream_h) $(store_h)
  387.  
  388. zfileio.$(OBJ): zfileio.c $(OP) $(gp_h) \
  389.   $(estack_h) $(file_h) $(store_h) $(stream_h) \
  390.   $(gsmatrix_h) $(gxdevice_h) $(gxdevmem_h)
  391.  
  392. zfilter.$(OBJ): zfilter.c $(OP) $(alloc_h) $(stream_h)
  393.  
  394. zgeneric.$(OBJ): zgeneric.c $(OP) $(dict_h) $(estack_h) $(name_h) $(packed_h) $(store_h)
  395.  
  396. zmath.$(OBJ): zmath.c $(OP) $(store_h)
  397.  
  398. zmisc.$(OBJ): zmisc.c $(OP) $(gp_h) $(alloc_h) $(dict_h) $(name_h) $(packed_h) $(store_h) \
  399.   $(gstype1_h) $(gxfixed_h)
  400.  
  401. zpacked.$(OBJ): zpacked.c $(OP) \
  402.   $(alloc_h) $(dict_h) $(name_h) $(packed_h) $(save_h) $(store_h)
  403.  
  404. zprops.$(OBJ): zprops.c $(OP) \
  405.   $(alloc_h) $(dict_h) $(name_h) $(store_h) \
  406.   $(gsprops_h) $(gsmatrix_h) $(gxdevice_h)
  407.  
  408. zrelbit.$(OBJ): zrelbit.c $(OP) $(store_h) $(dict_h)
  409.  
  410. zstack.$(OBJ): zstack.c $(OP) $(store_h)
  411.  
  412. zstring.$(OBJ): zstring.c $(OP) $(alloc_h) $(iutil_h) $(name_h) $(store_h) $(stream_h)
  413.  
  414. ztype.$(OBJ): ztype.c $(OP) $(dict_h) $(iutil_h) $(name_h) $(stream_h) $(store_h)
  415.  
  416. zvmem.$(OBJ): zvmem.c $(OP) $(alloc_h) $(dict_h) $(estack_h) $(save_h) $(state_h) $(store_h) \
  417.   $(gsmatrix_h) $(gsstate_h)
  418.  
  419. ###### Graphics operators
  420.  
  421. zchar.$(OBJ): zchar.c $(OP) $(gxmatrix_h) $(gschar_h) $(gstype1_h) $(gxdevice_h) $(gxfixed_h) $(gxfont_h) $(gzpath_h) $(gzstate_h) $(alloc_h) $(dict_h) $(font_h) $(estack_h) $(state_h) $(store_h)
  422.  
  423. zcolor.$(OBJ): zcolor.c $(OP) $(alloc_h) $(estack_h) $(gxfixed_h) $(gxmatrix_h) $(gzstate_h) $(gxdevice_h) $(gzcolor_h) $(iutil_h) $(state_h) $(store_h)
  424.  
  425. zdevice.$(OBJ): zdevice.c $(OP) $(alloc_h) $(state_h) $(gsmatrix_h) $(gsstate_h) $(gxdevice_h) $(store_h)
  426.  
  427. zfont.$(OBJ): zfont.c $(OP) $(gsmatrix_h) $(gxdevice_h) $(gxfont_h) $(gxfdir_h) \
  428.  $(alloc_h) $(font_h) $(dict_h) $(name_h) $(packed_h) $(save_h) $(state_h) $(store_h)
  429.  
  430. zfont1.$(OBJ): zfont1.c $(OP) $(gsmatrix_h) $(gxdevice_h) $(gschar_h) $(gxfixed_h) $(gxfont_h) \
  431.  $(dict_h) $(font_h) $(name_h) $(store_h)
  432.  
  433. zfont2.$(OBJ): zfont2.c $(OP) $(gsmatrix_h) $(gxdevice_h) $(gschar_h) $(gxfixed_h) $(gxfont_h) \
  434.  $(alloc_h) $(dict_h) $(font_h) $(name_h) $(packed_h) $(store_h)
  435.  
  436. zgstate.$(OBJ): zgstate.c $(OP) $(alloc_h) $(gsmatrix_h) $(gsstate_h) $(state_h) $(store_h)
  437.  
  438. zht.$(OBJ): zht.c $(OP) $(alloc_h) $(estack_h) $(gsmatrix_h) $(gsstate_h) $(state_h) $(store_h)
  439.  
  440. zmatrix.$(OBJ): zmatrix.c $(OP) $(gsmatrix_h) $(state_h) $(gscoord_h) $(store_h)
  441.  
  442. zpaint.$(OBJ): zpaint.c $(OP) $(alloc_h) $(estack_h) $(gsmatrix_h) $(gspaint_h) $(state_h) $(store_h)
  443.  
  444. zpath.$(OBJ): zpath.c $(OP) $(gsmatrix_h) $(gspath_h) $(state_h) $(store_h)
  445.  
  446. zpath2.$(OBJ): zpath2.c $(OP) $(alloc_h) $(estack_h) $(gspath_h) $(state_h) $(store_h)
  447.  
  448. ###### Linking
  449.  
  450. INT=ialloc.$(OBJ) idebug.$(OBJ) idict.$(OBJ) iinit.$(OBJ) iname.$(OBJ) \
  451.  interp.$(OBJ) isave.$(OBJ) iscan.$(OBJ) iutil.$(OBJ) \
  452.  sfilter.$(OBJ) stream.$(OBJ) \
  453.  zarith.$(OBJ) zarray.$(OBJ) zcontrol.$(OBJ) zdict.$(OBJ) \
  454.  zfile.$(OBJ) zfileio.$(OBJ) zfilter.$(OBJ) zgeneric.$(OBJ) \
  455.  zmath.$(OBJ) zmisc.$(OBJ) zpacked.$(OBJ) zprops.$(OBJ) zrelbit.$(OBJ) \
  456.  zstack.$(OBJ) zstring.$(OBJ) ztype.$(OBJ) zvmem.$(OBJ) \
  457.  zchar.$(OBJ) zcolor.$(OBJ) zfont.$(OBJ) zfont1.$(OBJ) zfont2.$(OBJ) \
  458.  zdevice.$(OBJ) zgstate.$(OBJ) zht.$(OBJ) zmatrix.$(OBJ) \
  459.  zpaint.$(OBJ) zpath.$(OBJ) zpath2.$(OBJ)
  460.  
  461. # -------------------------- Optional features ---------------------------- #
  462.  
  463. ### Additions common to Display PostScript and Level 2
  464.  
  465. dpsand2_=gsdps1.$(OBJ) ibnum.$(OBJ) ibscan.$(OBJ) \
  466.  zbseq.$(OBJ) zdps1.$(OBJ) zupath.$(OBJ)
  467. dpsand2.dev: $(dpsand2_)
  468.     $(SHP)gssetmod dpsand2 $(dpsand2_)
  469.     $(SHP)gsaddmod dpsand2 -oper zbseq zdps1 zupath
  470.     $(SHP)gsaddmod dpsand2 -ps gs_dps1
  471.  
  472. gsdps1.$(OBJ): gsdps1.c $(GXERR) $(gsmatrix_h) $(gspath_h)
  473.  
  474. ibnum.$(OBJ): ibnum.c $(GH) $(errors_h) $(stream_h) $(bnum_h) $(btoken_h)
  475.  
  476. ibscan.$(OBJ): ibscan.c $(GH) $(errors_h) $(alloc_h) $(dict_h) $(iutil_h) $(name_h) $(ostack_h) $(save_h) $(store_h) $(stream_h) $(bseq_h) $(btoken_h) $(bnum_h)
  477.  
  478. zbseq.$(OBJ): zbseq.c $(OP) $(save_h) $(store_h) $(stream_h) $(file_h) $(name_h) $(bnum_h) $(btoken_h) $(bseq_h)
  479.  
  480. zdps1.$(OBJ): zdps1.c $(OP) $(gsmatrix_h) $(gspath_h) $(gsstate_h) \
  481.  $(state_h) $(store_h) $(stream_h) $(bnum_h)
  482.  
  483. zupath.$(OBJ): zupath.c $(OP) \
  484.  $(dict_h) $(iutil_h) $(state_h) $(store_h) $(stream_h) $(bnum_h) \
  485.  $(gscoord_h) $(gsmatrix_h) $(gspaint_h) $(gspath_h) $(gsstate_h) \
  486.  $(gxfixed_h) $(gxdevice_h) $(gxpath_h)
  487.  
  488. ### Display PostScript
  489.  
  490. # We should include zcontext, but it isn't in good enough shape yet.
  491. dps_=
  492. dps.dev: dpsand2.dev $(dps_)
  493.     $(SHP)gssetmod dps $(dps_)
  494.     $(SHP)gsaddmod dps -include dpsand2
  495.  
  496. zcontext.$(OBJ): zcontext.c $(OP) \
  497.  $(alloc_h) $(dict_h) $(estack_h) $(state_h) $(store_h)
  498.  
  499. ### Level 2 additions -- currently just things common to DPS and Level 2.
  500. # Should also include
  501. #    $(SHP)gsaddmod level2 -ps gs_lev2
  502.  
  503. level2_=
  504. level2.dev: dpsand2.dev $(level2_)
  505.     $(SHP)gssetmod level2 $(level2_)
  506.     $(SHP)gsaddmod level2 -include dpsand2
  507.  
  508. ### Composite font support
  509.  
  510. gschar0.$(OBJ): gschar0.c $(GXERR) \
  511.   $(gxfixed_h) $(gxmatrix_h) $(gzdevice_h) $(gxdevmem_h) $(gxfont_h) $(gxchar_h) $(gzstate_h)
  512.  
  513. zfont0.$(OBJ): zfont0.c $(OP) $(gsmatrix_h) $(gxdevice_h) $(gxfont_h) \
  514.  $(alloc_h) $(font_h) $(dict_h) $(name_h) $(state_h) $(store_h)
  515.  
  516. compfont_=zfont0.$(OBJ) gschar0.$(OBJ)
  517. compfont.dev: $(compfont_)
  518.     $(SHP)gssetmod compfont $(compfont_)
  519.     $(SHP)gsaddmod compfont -oper zfont0
  520.  
  521. ### Filters other than eexec and ASCIIHex
  522.  
  523. sfilter2.$(OBJ): sfilter2.c $(AK) $(std_h) $(scanchar_h) $(stream_h)
  524.  
  525. zfilter2.$(OBJ): zfilter2.c $(OP) $(alloc_h) $(stream_h)
  526.  
  527. filter_=zfilter2.$(OBJ) sfilter2.$(OBJ)
  528. filter.dev: $(filter_)
  529.     $(SHP)gssetmod filter $(filter_)
  530.     $(SHP)gsaddmod filter -oper zfilter2
  531.  
  532. ### LZW encoding/decoding
  533. ### Not included, because Unisys has been awarded a legal monopoly
  534. ### (patent) on the right to implement the freely published algorithms.
  535.  
  536. lzw_=zlzwd.$(OBJ) zlzwe.$(OBJ) slzwd.$(OBJ) slzwe.$(OBJ)
  537. lzw.dev: $(lzw_)
  538.     $(SHP)gssetmod lzw $(lzw_)
  539.     $(SHP)gsaddmod lzw -oper zlzwd zlzwe
  540.  
  541. slzwd.$(OBJ): slzwd.c $(AK) std.h stream.h
  542.  
  543. slzwe.$(OBJ): slzwe.c $(AK) std.h stream.h
  544.  
  545. zlzwd.$(OBJ): zlzwd.c $(OP) $(alloc_h) $(stream_h)
  546.  
  547. zlzwe.$(OBJ): zlzwe.c $(OP) $(alloc_h) $(stream_h)
  548.  
  549. ### Precompiled fonts.  See fonts.doc for more information.
  550.  
  551. CCFONT=$(OP) $(ccfont_h)
  552.  
  553. ccfonts_=ugly.$(OBJ) cour.$(OBJ)
  554. ccfonts.dev: $(ccfonts_) iccfont.$(OBJ)
  555.     $(SHP)gssetmod ccfonts $(ccfonts_) iccfont.$(OBJ)
  556.     $(SHP)gsaddmod ccfonts -oper font_Ugly font_Courier
  557.     $(SHP)gsaddmod ccfonts -ps gs_ccfnt
  558.  
  559. ugly.$(OBJ): ugly.c $(CCFONT)
  560.  
  561. cour.$(OBJ): cour.c $(CCFONT)
  562.  
  563. # ----------------------------- Main program ------------------------------ #
  564.  
  565. # Utilities shared between platforms
  566.  
  567. gsmain.$(OBJ): gsmain.c $(GX) \
  568.   $(gp_h) $(gsmatrix_h) $(gxdevice_h)
  569.  
  570. # Interpreter main program
  571.  
  572. interp.$(OBJ): interp.c $(GH) \
  573.   $(errors_h) $(estack_h) $(name_h) $(dict_h) $(oper_h) $(ostack_h) $(packed_h) $(save_h) $(store_h) $(stream_h)
  574.     $(CCINT) interp.c
  575.  
  576. gs.$(OBJ): gs.c $(GH) $(alloc_h) $(estack_h) $(ostack_h) $(store_h) $(stream_h)
  577.